##########################################################################################
# Appendix Newspaper Stats
##########################################################################################
# Content
##########################################################################################
# Sentiment Descriptive Plots
##########################################################################################
# Contents
##########################################################################################
# 1) Dependencies
# 2) Intro
# 3) Table Ensemble Model Evaluation (SDM)
##########################################################################################
# 1) Dependencies
##########################################################################################
#Libraries
suppressPackageStartupMessages(library(readxl))
suppressPackageStartupMessages(library(readr))
suppressPackageStartupMessages(library(tidyr))
suppressPackageStartupMessages(library(dplyr))
suppressPackageStartupMessages(library(ggplot2))
suppressPackageStartupMessages(library(mda))
suppressPackageStartupMessages(library(kableExtra))
##########################################################################################
# 2) Intro
##########################################################################################
rm(list = ls())

args = commandArgs()

scriptName = args[substr(args,1,7) == '--file=']

if (length(scriptName) == 0) {
  scriptName <- rstudioapi::getSourceEditorContext()$path
} else {
  scriptName <- substr(scriptName, 8, nchar(scriptName))
}

pathName = substr(
  scriptName, 
  1, 
  nchar(scriptName) - nchar(strsplit(scriptName, '.*[/|\\]')[[1]][2])
)

setwd(pathName)
getwd()
parent_path <- getwd()
##########################################################################################
# 3) Table Newspaper Stats
##########################################################################################
df_b <- read_rds("../data/smd_ner_2015_2019_combined.RDS")

df_b <- df_b %>% mutate(so_txt = case_when(
                        so_txt %in% c("20 minuten online", "20 minutes","20 minuti", "www.20minutes.ch") ~ "20 minuten", 
                        so_txt %in% c("Newsnet / 24 heures") ~ "24 heures",
                        so_txt %in% c("Newsnet / Basler Zeitung") ~ "Basler Zeitung",
                        so_txt %in% c("Newsnet / Berner Zeitung") ~ "Berner Zeitung",
                        so_txt %in% c("Newsnet / Der Bund") ~ "Der Bund",
                        so_txt %in% c("Newsnet / Le Matin", "www.lematin.ch") ~ "Le Matin",
                        so_txt %in% c("Newsnet / Tribune de Genève", "Tribune de Genève") ~ "Tribune de Genève",
                        so_txt %in% c("Newsnet / Tages-Anzeiger") ~ "Tages-Anzeiger",
                        so_txt %in% c("Handelszeitung online") ~ "Handelszeitung",
                        so_txt %in% c("rts.ch", "RTS.ch") ~ "srf.ch",
                        so_txt %in% c("SWI swissinfo.ch") ~ "swissinfo.ch",
                        so_txt %in% c("Finanz und Wirtschaft Online") ~ "Finanz und Wirtschaft",
                        so_txt %in% c("Anzeigen von Uster", "Anzegier von Uster") ~ "Anzeiger von Uster",
                        so_txt %in% c("L'Agefi", "www.agefi.com") ~ "Agefi",
                        so_txt %in% c("Aargauer Zeitung", "Aargauer Zeitung / MLZ") ~ "Aargauer Zeitung",
                        so_txt %in% c("Migros-Magazin", "Migros Magazine") ~ "Migros-Magazin",
                        so_txt %in% c("Cooperazione", "Coopzeitung", "Coopération") ~ "Coopzeitung",
                        so_txt %in% c("L'Express / L'Impartial", "Arcinfo") ~ "Arcinfo",
                        so_txt %in% c("zentral+", "zentralplus") ~ "Zentralplus",
                        so_txt %in% c("Basellandschaftliche Zeitung / MLZ ") ~ "Basellandschaftliche Zeitung",
                        so_txt %in% c("Limmattaler Zeitung / MLZ") ~ "Limmattaler Zeitung",
                        so_txt %in% c("Oltner Tagblatt / MLZ") ~ "Oltner Tagblatt",
                        so_txt %in% c("Schweiz am Sonntag / MLZ") ~ "Schweiz am Sonntag",
                        so_txt %in% c("Solothurner Zeitung / MLZ") ~ "Solothurner Zeitung",
                        so_txt %in% c("Zofinger Tagblatt / MLZ") ~ "Zofinger Tagblatt",
                        TRUE ~ so_txt
                      ))

# Add Year Split
df_b <- df_b %>% mutate(year = lubridate::year(pubDateTime),
                        so_txt = ifelse(so_txt == "cash Online", "Cash Online", so_txt)) 


stats_all <- df_b %>% group_by(so_txt, pubDateTime) %>% 
  summarise(n = n()) %>% 
  group_by(so_txt) %>% 
  summarise(Articles = sum(n), AVG = mean(n), min = min(n), max = max(n))

stats_year <- df_b %>% group_by(year, so_txt) %>% summarise(n = n()) %>% mutate(f = n /sum(n) * 100)

colnames(stats_all) <- c("Newspaper", "Articles", "Daily Average", "Daily Min", "Daily Max")

stats_all_rounded <- stats_all %>% mutate_if(is.numeric, round, digits=3)

stargazer::stargazer(stats_all_rounded, summary = F, header = F, type = "latex", digits = 2, rownames = F,
                     out = "../tables_appendix/NewspapersTable.tex")
##########################################################################################